package testing;

import static org.junit.Assert.*;

import org.junit.Test;

import clases.Grafo;

public class GrafoTest {
	

	@Test
	public void pruebaDeSonVecinos2(){
		Grafo grafo = inicio();
	
		assertTrue(grafo.sonVecinos(0,1));
		assertTrue(grafo.sonVecinos(1,0));
		assertTrue(grafo.sonVecinos(3,4));
		assertTrue(grafo.sonVecinos(4,3));
		assertTrue(grafo.sonVecinos(1,3));
		assertTrue(grafo.sonVecinos(1,5));
		assertTrue(grafo.sonVecinos(5,1));
	
	}
	
	@Test
	public void otraPruebaDeSonVecinos2(){
		Grafo grafo = inicio();	
		
		assertTrue(grafo.sonVecinos(1,0));
		assertTrue(grafo.sonVecinos(1,3));
		assertTrue(grafo.sonVecinos(2,1));
		assertTrue(grafo.sonVecinos(0,4));
	}
	
	@Test
	public void pruebaDeGrado (){
		Grafo grafo = inicio();
		
		assertEquals(5, grafo.grado(0));
		assertEquals(4, grafo.grado(1));
		assertEquals(4, grafo.grado(2));
		assertEquals(4, grafo.grado(3));
		assertEquals(3, grafo.grado(4));
	}

	private Grafo inicio() {
		Grafo grafo = new Grafo (6);
		grafo.agregarArista(0,1);
		grafo.agregarArista(0,2);
		grafo.agregarArista(0,3);
		grafo.agregarArista(0,4);
		grafo.agregarArista(0,5);
		grafo.agregarArista(1,2);
		grafo.agregarArista(2,3);
		grafo.agregarArista(4,3);
		grafo.agregarArista(4,2);
		grafo.agregarArista(1,3);
		grafo.agregarArista(1,5);
		
		return grafo;
	}
	@Test
	public void bfsTest(){
		Grafo grafo =inicio();
		assertTrue(grafo.esConexo(grafo.bfs(0)));
		assertFalse(grafo.esConexo(grafo.bfs(1)));
		assertFalse(grafo.esConexo(grafo.bfs(2)));
		assertFalse(grafo.esConexo(grafo.bfs(3)));
		assertFalse(grafo.esConexo(grafo.bfs(4)));
		assertFalse(grafo.esConexo(grafo.bfs(5)));
		
	}
	
	

}
